Correct program parallelisations

نویسندگان

چکیده

Abstract A commonly used approach to develop deterministic parallel programs is augment a sequential program with compiler directives that indicate which blocks may potentially be executed in parallel. This paper develops verification technique reason about such directives, particular show they do not change the behaviour of program. Moreover, tool-supported and can combined proving functional correctness To our technique, we propose simple intermediate representation (syntax semantics) captures main forms programs. language distinguishes three kinds basic blocks: parallel, vectorised blocks, composed using different composition operators: sequential, fusion composition. We how widely subset OpenMP encoded into this representation. Our builds on notion iteration contract specify blocks; if contracts are manually specified for single then sufficient automatically data race freedom also it establish linearised version original conclude Finally, exemplify an example program, discuss tool support provided.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

On Correct Program Schemas

Extended Abstract 1 Introduction A program schema is an abstraction of a class of actual programs, in the sense that it represents their data-ow and control-ow, but does not contain (all) their actual computations or (all) their actual data structures. Program schemas have been shown to be useful in a variety of applications, such as proving properties of programs, teaching programming to novic...

متن کامل

Verification of Loop Parallelisations

Writing correct parallel programs becomes more and more difficult as the complexity and heterogeneity of processors increase. This issue is addressed by parallelising compilers. Various compiler directives can be used to tell these compilers where to parallelise. This paper addresses the correctness of such compiler directives for loop parallelisation. Specifically, we propose a technique based...

متن کامل

Formal Mathematics for Verifiably Correct Program Synthesis

We describe a formalization of the meta-mathematics of programming in a higher-order logical calculus as a means to create verifiably correct implementations of program synthesis tools. Using reflected notions of programming concepts we can specify the actions of synthesis methods within the object language of the calculus and prove formal theorems about their behavior. The theorems serve as de...

متن کامل

Gencel: a program generator for correct spreadsheets

A huge discrepancy between theory and practice exists in one popular application area of functional programming—spreadsheets. Although spreadsheets are the most frequently used (functional) programs, few formal models of computation and type systems exist that would provide the foundation for creating reliable spreadsheets. Consequently, existing spreadsheets contain many errors, some of which ...

متن کامل

A Unifying Framework for Correct Program Construction

We present a description technique for the correct construction of programs that allows us to deene terms like reenement, model-checking, and synthesis as special operations within this framework. From that meta-view on program constructions both advantages and disadvantages of all methods mentioned become clear. Furthermore, it becomes clear that an incremental program construction seems to be...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: International Journal on Software Tools for Technology Transfer

سال: 2021

ISSN: ['1433-2779', '1433-2787']

DOI: https://doi.org/10.1007/s10009-020-00601-z